package com.luoran.bartalks.dao;

import java.util.List;

import org.beetl.sql.core.annotatoin.Param;

import org.beetl.sql.core.mapper.BaseMapper;
import com.luoran.bartalks.entity.biz.BtPlanBiz;

public interface IBtPlanBizDao extends BaseMapper<BtPlanBiz> {

	// 根据箱单物料表ID与地点ID业务类型查询主键ID
	String getIdByPackingListMaterielId(@Param("packingListMaterielId") String packingListMaterielId,
			@Param("planPositionId") String planPositionId, @Param("bizType") int bizType);

	// 根据计划id与地点id查询应有的容器
	List<BtPlanBiz> findContainersByPlanPositionIdAndPlanId(@Param("planPositionId") String planPositionId,
			@Param("planId") String planId);

	// 查询在该项目的容器中是否在应卸中
	BtPlanBiz findPlanBizByPlanpositionIdAndContainerId(@Param("planId") String planId,
			@Param("materielId") String materielId, @Param("containerId") String containerId,
			@Param("planPositionId") String planPositionId);

	// 查询是否是该计划的物料
	BtPlanBiz findmaterielByPlanpositionIdAndplanId(@Param("planId") String planId,
			@Param("materielId") String materielId, @Param("planPositionId") String planPositionId);

	// 根据计划途径点关系表的id,计划id.项目id.查询已装记录条数
	int getInedItemCount(@Param("planPositionId") String planPositionId, @Param("planId") String planId,
			@Param("projectId") String projectId);

	// 根据计划途径点关系表的iD,计划id,项目id.查询已卸记录条数.
	int getOutedItemCount(@Param("planPositionId") String planPositionId, @Param("planId") String planId,
			@Param("projectId") String projectId);

	// 根据计划途径点关系表的id,计划id.所属容器id.查询该容器已装物料条数
	int getInedItemCountByContainer(@Param("planPositionId") String planPositionId, @Param("planId") String planId,
			@Param("containerId") String containerId);

	// 根据计划途径点关系表的id,计划id.所属容器id.查询该容器已卸物料条数
	int getOutedItemCountByContainer(@Param("planPositionId") String planPositionId, @Param("planId") String planId,
			@Param("containerId") String containerId);

	// 根据计划途径点关系表的id,计划id.所属容器id.查询该容器已装物料信息
	List<BtPlanBiz> getInedItemInfoCountByContainer(@Param("planPositionId") String planPositionId,
			@Param("planId") String planId, @Param("containerId") String containerId);

	// 根据计划途径点关系表的id,计划id.所属容器id.查询该容器已卸物料信息
	List<BtPlanBiz> getOutedItemInfoCountByContainer(@Param("planPositionId") String planPositionId,
			@Param("planId") String planId, @Param("containerId") String containerId);

	List<BtPlanBiz> getContainerExtraInfo(@Param("projectId") String projectId, @Param("planId") String planId,
			@Param("planPositionId") String planPositionId, @Param("containerId") String containerId);

	// 根据箱单物料id,查询当前点该物料是否存在装货记录
	BtPlanBiz getItemByPackingListMaterielIdAndPlanPositionId(
			@Param("packingListMaterielId") String packingListMaterielId,
			@Param("planPositionId") String planPositionId, @Param("bizType") int bizType);

	// 根据项目ID计划ID途经点ID查看是否有记录
	List<BtPlanBiz> findArrive(@Param("projectId") String projectId, @Param("planId") String planId,
			@Param("planPositionId") String planPositionId);

}
